
# 闭包
"""
说明 ：
1. 在函数的内部又定义了一个函数
2. 内部函数使用了外部函数的临时变量
3. 外部函数的返回值是内部函数的引用


# 语法：
def outer_func():
    temp = None
    def inner_func():       # ①
        print(temp)         # ②
        代码块
    return inner_func       # ③


闭包的主要使用场景 ： 装饰器 。
"""

# 需求 ： 实现加、减、乘、除的简易版计算器
import  operator

def operation(op):
    def calc(a,b):
        vls = {
            '+':operator.add(a,b),
            '-':operator.sub(a,b),
            '*':operator.mul(a,b),
            '/':operator.truediv(a,b)
        }
        return vls.get(op)
    return calc




